Communication system designers are always looking for ways to increase the capacity of a communications channel between a transmitter and receiver. A communications channel may be defined as a system that transmits a sequence of symbols from one point to another. For example, a cellular communications system includes a channel for wirelessly transmitting a sequence of symbols that represent voice or data, back and forth between the telephone system and subscriber unit. An increase in the capacity of this channel means an increase in the rate of transmitting symbols. And when more symbols are transmitted in the same amount of time, voice can sound better, and it may take less time to transfer data files.
To increase the capacity of a wireless communications channel, antenna arrays have been used at the transmitter to better focus the transmitted energy at the receiver. An antenna array is a group of spaced apart antennas that each transmit an antenna signal that has a specific gain and phase relationship with the other antenna signals. When the antennas work together transmitting the antenna signals, they produce an antenna pattern that is more focused on the receiver than a pattern produced by a single antenna. Note that the process of changing the gain and phase of a signal to produce antenna signals may be referred to as “weighting” the signal using a set of “antenna array weights.”
Because antenna arrays may similarly be used at a receiver to improve signal quality, use of antenna arrays at both the transmitter and receiver has also been proposed to increase channel capacity. When multiple antennas are used at the transmitter and receiver, the wireless channel between them may be referred to as a multiple-input, multiple-output (MIMO) channel.
FIG. 1 shows a high-level schematic diagram of a communications channel, wherein a portion of the communications channel is wireless. As shown, x represents user data that will be wirelessly transmitted to the receiver. At the receiver, x is represented as an estimate of the data, {circumflex over (x)}. User data x may be split to produce a vector that represents multiple data streams, x1, x2, . . .
User data x is processed by matrix V to produce adaptive array antenna signals z. Each column of matrix V is a vector containing an antenna array weight set used to transmit one of the data streams xi. Signals z are transmitted from antenna elements of the antenna array, through the air, and received at the receiver antenna array as received antenna signals r. The air interface between antenna signals z and received antenna signals r includes matrix H, which describes the effects of the air interface on signals z. The air interface is also described by the addition of noise n to signals z.
Received antenna signals r are processed in the receiver by matrix U′ to produce the estimate of data, {circumflex over (x)}.
With reference now to FIG. 2, there is depicted a two-input, two-output MIMO antenna array system. This MIMO system may be used to simultaneously transmit two different data streams, x1 and x2, to a single subscriber unit through a “composite channel” H, defined by the matrix   H  =      [                                        h            11                                                h            12                                                            h            21                                                h            22                                ]  where hij, i=1,2, j=1,2 are complex channel values. Note that the term “composite channel” as used herein refers to a complete measurement or description of a channel, wherein the effects of all combinations of transmit antennas and receive antennas are considered. The composite channel may be thought of as the aggregation of all channels between pairs of single antennas, defined by all pair-wise combinations of transmit and receive antennas.
When a flat Rayleigh fading channel is assumed, hij are complex-valued Gaussian numbers with unity average power, E[hijhij+]=1. The received (baseband) vector r (see FIG. 1) can be written as follows:r=Hx+nwhere x=[x1 x2]T is the vector of transmitted data streams, and n is a vector of noise samples, with additive white Gaussian noise with variance σn2.
Note that in a noise free channel, both streams can be recovered perfectly if channel matrix H is full rank. That is, two equations and two unknowns can be solved to recover the unknowns x=[x1 x2]T. When x=H−1r, both data streams can be recovered and link, or channel, capacity can be doubled. For example, a linear architecture may use zero forcing receivers to multiply the received vector r, with H−1. This works well with a high signal-to-noise ratio (SNR), but with a low SNR it boosts noise, which is not desirable.
In another linear receiver architecture, a Minimum Mean Square Error (MMSE) receiver may be used to minimize the average difference between detected data streams and the received signal.
While linear and non-linear receiver architectures can both be implemented to detect the multiple streams in noisy channels, in practical applications, noise in the channel will often require the use of non-linear receivers, which are more complicated and expensive to build. Examples of non-linear receivers with improved performance are Serial-Interference-Cancellation (SIC) receivers and a Maximum Likelihood (ML) receivers. Because of their complexity and cost, non-linear receivers should be avoided if possible.
Theoretical MIMO Capacity:
The capacity of a MIMO system may be shown with the following analysis. Suppose the Singular Value Decomposition (SVD) of the channel matrix H is given byH=USV′  (1)where S is a diagonal matrix composed of the singular values (i.e., the square-roots of eigenvalues of H′H or HH′), U is an orthogonal matrix with column vectors equal to the eigenvectors of HH′, V is an orthogonal matrix with columns equal to the eigenvectors of H′H, and the “′”, operator is the complex conjugate transpose operation. As an example, consider the following composite channel matrix                     H        =                  [                                                    1                                            1                                                                    1                                                              -                  1                                                              ]                                    (        1.1        )            The SVD of this composite channel is                     H        =                              USV            ′                    =                                                    [                                                                                                    1                        /                                                  2                                                                                                                                    1                        /                                                  2                                                                                                                                                                        1                        /                                                  2                                                                                                                                                              -                          1                                                /                                                  2                                                                                                                    ]                            ⁡                              [                                                                                                    2                                                                                    0                                                                                                  0                                                                                      2                                                                                            ]                                      ⁡                          [                                                                    1                                                        0                                                                                        0                                                        1                                                              ]                                                          (        1.2        )            Referring to FIG. 1, the transmit vector isz=Vx   (2)Thus, the received vector isr=Hz+n  (3)Replacing H and z with (1) and (2), we getr=USV′Vx+n=USx+n  (4)where, since V is an orthonormal matrix, V′V is replaced with identity. Next, the received vector is pre-multiplied with U′:                                                                         x                ^                            ⁢                            =                                                                    U                    ′                                    ⁢                  USx                                +                                                      U                    ′                                    ⁢                  n                                                                                                                      ⁢                              =                                  Sx                  +                  e                                                                                        (        5        )            
Again, since U is an orthonormal matrix, U′U is replaced with identity. Note that the new noise vector, e, has the same covariance matrix as n, because pre-multiplication with an orthonormal matrix does not alter the noise covariance.
If equation (5) is rewritten for the case of 2 transmit antennas, and 2 receive antennas it becomes:                               [                                                                                          x                    ^                                    1                                                                                                                          x                    ^                                    2                                                              ]                =                                                            [                                                                                                                              λ                          1                                                                                                            0                                                                                                  0                                                                                                                λ                          2                                                                                                                    ]                            ⁡                              [                                                                                                    x                        1                                                                                                                                                x                        2                                                                                            ]                                      +                          [                                                                                          e                      1                                                                                                                                  e                      2                                                                                  ]                                =                      [                                                                                                                                                        λ                          1                                                                    ⁢                                              x                        1                                                              +                                          e                      1                                                                                                                                                                                                                λ                          2                                                                    ⁢                                              x                        2                                                              +                                          e                      2                                                                                            ]                                              (        6        )            where λi are the channel matrix eigenvalues.
The error free channel capacity based on the Shannon bound is well known, and is given byC1=log2(1+ρ) bits/symbol  (7)where ρ is the channel SNR. From (5) and (6), note that the MIMO channel capacity based on the Shannon bound is the sum of the capacities per data stream:                              C          MIMO                =                                            ∑                              i                =                1                            M                        ⁢                                                   ⁢                          C              i                                =                                    ∑                              i                =                1                            M                        ⁢                                                   ⁢                                                            log                  2                                ⁡                                  (                                      1                    +                                                                  ρ                        M                                            ⁢                                              λ                        i                                                                              )                                            ⁢                                                           ⁢              bits              ⁢                              /                            ⁢              symbol                                                          (        8        )            where M is the minimum number of antennas at either the transmitter or the receiver. For the 2 transmit antenna, 2 receive antenna example, M=2. It is important to note that in (8), the total transmit power has been normalized such that it remains the same for any number of transmit antennas. The ratio ρ/M ensures equal power transmitted on all antennas, and it maintains the same total power for all values of M.
In general, equal power transmission of (8) is sub-optimal. The total capacity, which is the sum of each data stream capacity,             C      MIMO        =                  ∑        i                                       ⁢                           ⁢              C        i              ,can be maximized by increasing the power to the high SNR streams, and reducing the power to the low SNR streams, such that the total transmit power remains the same. This procedure is typically referred to as “waterfilling.”
By including waterfilling weights for optimum power allocation per data stream, (8) becomes:                               C          MIMO                =                              ∑                          i              =              1                        M                    ⁢                                           ⁢                                                    log                2                            ⁡                              (                                  1                  +                                                            ρ                      M                                        ⁢                                          λ                      i                                        ⁢                                          w                      i                                                                      )                                      ⁢                                                   ⁢            bits            ⁢                          /                        ⁢            symbol                                              (        9        )            where waterfilling weights are computed from                     ∑        i            ⁢                           ⁢              w        i              =                            ∑          i                                                 ⁢                                   ⁢                  max          ⁡                      [                          0              ,                              (                                  K                  -                                                            σ                      n                      2                                                              λ                      i                                                                      )                                      ]                              =      1        ,which is the waterfilling criterion, which is discussed by R. G. Gallager in Information Theory and Reliable Communication, New York: John Wiley & Sons, 1968. Here, K is a constant determined by iterations, and wi are set accordingly.
Because transmitters in prior art systems lack data regarding the conditions of the composite channel, the performance of these systems cannot approach the Shannon bound for the MIMO channel. Furthermore, the amount of data needed to describe a composite MIMO channel is large, which would consume a large percentage of channel capacity when communicated to the transmitter.
Thus, it should be apparent that a need exists for an improved method and system for using feedback to efficiently control data transmission and reception in a multiple-input, multiple-output radio frequency channel.